package net.qiqbframework.eventhandling;

import javax.annotation.Nonnull;
import java.util.Map;


public interface DomainEventMessage<T> extends EventMessage<T> {

    /**
     * 在同一个聚合对象处理命令中，尝试的领域事件具有先后顺序，在消费的过程中，也需要按照序列号顺序监听。
     */
    long getSequenceNumber();

    /**
     * 聚合唯一标识
     */
    String getAggregateIdentifier();

    /**
     * 返回生成此 DomainEvent 的 Aggregate 的类型。默认情况下，这等于聚合根的简单类名。
     */
    String getAggregateType();

}
